home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR06 / POG10.ZIP / POG.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1993-09-24  |  17KB  |  752 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN001
  20.     Boolean  BOOLEAN002
  21.     Boolean  BOOLEAN003
  22.     Boolean  BOOLEAN004
  23.     Boolean  BOOLEAN005
  24.     Boolean  BOOLEAN006
  25.     Boolean  BOOLEAN007
  26.     Boolean  TBOOLEAN008(32)
  27.     Integer  INTEGER001
  28.     Integer  INTEGER002
  29.     Integer  INTEGER003
  30.     Integer  INTEGER004
  31.     Integer  INTEGER005
  32.     Integer  INTEGER006
  33.     Integer  INTEGER007
  34.     Integer  INTEGER008
  35.     Integer  INTEGER009
  36.     String   STRING001
  37.     String   STRING002
  38.     String   STRING003
  39.     String   STRING004
  40.     String   STRING005
  41.     String   STRING006
  42.     String   STRING007
  43.     String   STRING008
  44.     String   STRING009
  45.     String   TSTRING010(51,3)
  46.     String   TSTRING011(51,3)
  47.     String   TSTRING012(32,2)
  48.  
  49. ;------------------------------------------------------------------------------
  50.  
  51.     STRING002 = "Registered To: "
  52.     STRING003 = "UNREGISTERED VERSION"
  53.     STRING001 = STRING002 + STRING003
  54.     STRING004 = "Version 1.0"
  55.     INTEGER008 = 0
  56.     BOOLEAN007 = 0
  57.     BOOLEAN005 = 0
  58.     Log "Entered POG.PPE at " + Left(Time(), 5), 0
  59.     GetUser
  60.     Gosub LABEL020
  61.     Gosub LABEL021
  62.     STRING005 = Left(U_Name(), InStr(U_Name(), " ") - 1)
  63.     STRING005 = Left(STRING005, 1) + Right(Lower(STRING005), Len(STRING005) - 1)
  64.     Cls
  65.     If (AnsiOn()) Goto LABEL001
  66.     PrintLn 
  67.     PrintLn "Sorry ", STRING005, ", but this game requires ANSI capability."
  68.     Log "User does not have ANSI capability.", 0
  69.     PrintLn 
  70.     Goto LABEL013
  71.     :LABEL001
  72.     If (STRING003 == "UNREGISTERED VERSION") Then
  73.         BOOLEAN003 = 0
  74.         INTEGER003 = 10
  75.         INTEGER007 = 5
  76.         PrintLn 
  77.         PrintLn Space(20) + "@X0E Pot Of Gold - (C) 1993 Gerry Schechter"
  78.         PrintLn 
  79.         PrintLn Space((80 - Len(STRING004)) / 2) + STRING004
  80.         PrintLn 
  81.         Delay 20
  82.         PrintLn Space((80 - Len(STRING001)) / 2) + "@X0B" + STRING001
  83.         PrintLn 
  84.         Delay 20
  85.         PrintLn Space(15) + "@X0F Please ask your Sysop to register this program!"
  86.         PrintLn 
  87.         Delay 20
  88.     Else
  89.         BOOLEAN003 = 1
  90.         INTEGER003 = 50
  91.         PrintLn 
  92.         PrintLn Space(20), "@X0E Pot Of Gold - (C) 1993 Gerry Schechter"
  93.         PrintLn 
  94.         PrintLn Space((80 - Len(STRING004)) / 2), STRING004
  95.         PrintLn 
  96.         PrintLn Space((80 - Len(STRING001)) / 2), "@X0B", STRING001
  97.         PrintLn 
  98.         GetToken INTEGER005
  99.         If (INTEGER005 == 0) Then
  100.             INTEGER007 = 5
  101.         Else
  102.             INTEGER007 = INTEGER005
  103.         Endif
  104.     Endif
  105.     If (BOOLEAN003) Then
  106.         If (Left(ReadLine(PCBDat(), 94), 30) <> Left(STRING003, 30)) Then
  107.             PrintLn "@X0C"
  108.             PrintLn Space(14) + "Your Sysop is using a pirated copy of this program!"
  109.             PrintLn "@BEEP@"
  110.             PrintLn Space(12) + "This is dishonest and unethical, not to mention illegal!"
  111.             PrintLn 
  112.             Log "--> Using Pirated Software Is Illegal!!", 0
  113.             Delay 35
  114.             Print Space(26)
  115.             Wait
  116.         Else
  117.             If (Exist(PPEPath() + "POG.DAT")) Goto LABEL002
  118.             FCreate 1, PPEPath() + "POG.DAT", 1, 3
  119.             INTEGER005 = 0
  120.             For INTEGER001 = 1 To 51
  121.                 TSTRING010(INTEGER001, 1) = "NotUsed"
  122.                 TSTRING010(INTEGER001, 2) = "01/01/90"
  123.                 TSTRING010(INTEGER001, 3) = INTEGER005
  124.                 FPutLn 1, TSTRING010(INTEGER001, 1)
  125.                 FPutLn 1, TSTRING010(INTEGER001, 2)
  126.                 FPutLn 1, TSTRING010(INTEGER001, 3)
  127.                 TSTRING011(INTEGER001, 1) = "NotUsed"
  128.                 TSTRING011(INTEGER001, 2) = "01/01/90"
  129.                 TSTRING011(INTEGER001, 3) = INTEGER005
  130.             Next
  131.             FClose 1
  132.             :LABEL002
  133.             BOOLEAN001 = 0
  134.             BOOLEAN002 = 1
  135.             FOpen 1, PPEPath() + "POG.DAT", 0, 0
  136.             For INTEGER001 = 1 To 50
  137.                 FGet 1, TSTRING010(INTEGER001, 1)
  138.                 If (U_Name() == TSTRING010(INTEGER001, 1)) Then
  139.                     BOOLEAN001 = 1
  140.                     INTEGER002 = INTEGER001
  141.                 Endif
  142.                 If ((!BOOLEAN001 && BOOLEAN002) && (TSTRING010(INTEGER001, 1) == "NotUsed")) Then
  143.                     BOOLEAN002 = 0
  144.                     INTEGER002 = INTEGER001
  145.                 Endif
  146.                 FGet 1, TSTRING010(INTEGER001, 2)
  147.                 FGet 1, TSTRING010(INTEGER001, 3)
  148.                 If (TSTRING010(INTEGER001, 3) > INTEGER008) Then
  149.                     INTEGER009 = INTEGER001
  150.                     INTEGER008 = TSTRING010(INTEGER001, 3)
  151.                 Endif
  152.             Next
  153.             FGet 1, TSTRING010(INTEGER001, 1)
  154.             FGet 1, TSTRING010(INTEGER001, 2)
  155.             FGet 1, TSTRING010(INTEGER001, 3)
  156.             FClose 1
  157.             If (INTEGER002 > INTEGER003) Then
  158.                 PrintLn "@X0C"
  159.                 STRING006 = "Sorry " + STRING005 + ", maximum allowed users reached."
  160.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  161.                 PrintLn 
  162.                 If (BOOLEAN003) Goto LABEL003
  163.                 Delay 30
  164.                 STRING006 = "Your Sysop must register this program in order for you to play."
  165.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  166.                 Delay 30
  167.                 Goto LABEL004
  168.                 :LABEL003
  169.                 STRING006 = "Please notify your sysop!"
  170.                 PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  171.                 :LABEL004
  172.                 PrintLn 
  173.                 Print Space(26)
  174.                 Wait
  175.             Else
  176.                 If (BOOLEAN001) Then
  177.                     PrintLn "@X0A"
  178.                     PrintLn Space((66 - Len(STRING005)) / 2) + "Welcome Back " + STRING005
  179.                     PrintLn 
  180.                     Print Space((57 - Len(TSTRING010(INTEGER002, 3))) / 2)
  181.                     PrintLn "Your current score is " + TSTRING010(INTEGER002, 3)
  182.                     INTEGER006 = TSTRING010(INTEGER002, 3)
  183.                     INTEGER004 = INTEGER006
  184.                 Else
  185.                     PrintLn "@X0A"
  186.                     PrintLn Space((72 - Len(STRING005)) / 2) + "Welcome " + STRING005
  187.                     PrintLn 
  188.                     PrintLn Space(26) + "I'll start you out with 100"
  189.                     TSTRING010(INTEGER002, 1) = U_Name()
  190.                     TSTRING010(INTEGER002, 2) = Date()
  191.                     INTEGER006 = 100
  192.                     INTEGER004 = INTEGER006
  193.                     TSTRING010(INTEGER002, 3) = INTEGER006
  194.                     INTEGER005 = 99
  195.                     FCreate 1, PPEPath() + "POG.DAT", 1, 3
  196.                     For INTEGER001 = 1 To 51
  197.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  198.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  199.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  200.                     Next
  201.                     FClose 1
  202.                 Endif
  203.                 PrintLn "@X0F"
  204.                 If (INTEGER008 <> 0) Then
  205.                     STRING006 = "The current high score is " + String(INTEGER008)
  206.                     STRING006 = STRING006 + " by " + TSTRING010(INTEGER009, 1)
  207.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  208.                     PrintLn 
  209.                 Endif
  210.                 STRING006 = "Y"
  211.                 Print Space(25)
  212.                 InputYN "Do you want sounds (Y/n)", STRING006, 11
  213.                 If (((STRING006 == "y") || (STRING006 == "Y")) || (STRING006 == "")) Then
  214.                     BOOLEAN006 = 1
  215.                 Else
  216.                     BOOLEAN006 = 0
  217.                 Endif
  218.                 If (INTEGER005 == 99) Goto LABEL005
  219.                 If (TSTRING010(INTEGER002, 2) == Left(Date(), 8)) Then
  220.                     PrintLn "@CLS@@X0F"
  221.                     If (BOOLEAN006) Gosub LABEL016
  222.                     STRING006 = "Sorry " + STRING005 + ", you may only play once per day."
  223.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  224.                     PrintLn 
  225.                     Print Space(26)
  226.                     Wait
  227.                     Cls
  228.                 Else
  229.                     :LABEL005
  230.                     Gosub LABEL019
  231.                     Goto LABEL008
  232.                     :LABEL006
  233.                     INTEGER005 = 0
  234.                     For INTEGER001 = 1 To 32
  235.                         INTEGER005 = INTEGER005 + TBOOLEAN008(INTEGER001)
  236.                     Next
  237.                     If (INTEGER005 == 32) Then
  238.                         BOOLEAN007 = 1
  239.                         TBOOLEAN008(1) = 0
  240.                         If (BOOLEAN006) Gosub LABEL016
  241.                         AnsiPos 25, 22
  242.                         Print "@X0CAll boxes used, 200 point bonus!"
  243.                         INTEGER006 = INTEGER006 + 200
  244.                         If (BOOLEAN006) Gosub LABEL016
  245.                         Delay 40
  246.                         Goto LABEL006
  247.                     Endif
  248.                     If (BOOLEAN007) Then
  249.                         Gosub LABEL019
  250.                         Gosub LABEL021
  251.                     Else
  252.                         AnsiPos 4, 20
  253.                         Print "@X0F         @X0E[@X0FH@X0E]elp  [@X0FS@X0E]cores"
  254.                         Print "  [@X0FR@X0E]edraw  [@X0FQ@X0E]uit  @X0FNumber To Play @X0E     "
  255.                         AnsiPos 64, 20
  256.                         INTEGER005 = Random(Time())
  257.                         STRING006 = ""
  258.                         InputStr "", STRING006, 14, 2, "1234567890qQrRsShH", 0
  259.                         If (MinLeft() < 4) Then
  260.                             Cls
  261.                             BOOLEAN005 = 1
  262.                             Goto LABEL010
  263.                         Endif
  264.                         If (STRING006 == "") Goto LABEL006
  265.                         If ((STRING006 == "q") || (STRING006 == "Q")) Then
  266.                             BOOLEAN005 = 1
  267.                             Cls
  268.                             Goto LABEL010
  269.                         Endif
  270.                         If ((STRING006 == "r") || (STRING006 == "R")) Then
  271.                             SaveScrn
  272.                             RestScrn
  273.                             Goto LABEL006
  274.                         Endif
  275.                         If ((STRING006 == "s") || (STRING006 == "S")) Then
  276.                             Gosub LABEL014
  277.                             Goto LABEL006
  278.                         Endif
  279.                         If ((STRING006 == "h") || (STRING006 == "H")) Then
  280.                             SaveScrn
  281.                             PrintLn "@CLS@"
  282.                             PrintLn "@X0E                       Pot Of Gold Help Menu"
  283.                             PrintLn 
  284.                             PrintLn "@X0BPlaying @X0EPot Of Gold@X0B is very easy!"
  285.                             PrintLn 
  286.                             PrintLn "@X0BType @X0EQ@X0B to quit the game."
  287.                             PrintLn "@X0BType @X0ER@X0B to re-draw the screen."
  288.                             PrintLn "@X0BType @X0ES@X0B to see the scores."
  289.                             PrintLn "@X0BEnter a number from @X0E1@X0B to @X0E32@X0B to reveal the hidden score."
  290.                             PrintLn 
  291.                             PrintLn "@X0BThe hidden scores can be almost any amount, both positive and negative."
  292.                             PrintLn "@X0BThere are also other possible hidden items."
  293.                             PrintLn "@X0ELOSE@X0B, will subtract a turn and start a new game."
  294.                             PrintLn "@X0EEND!@X0B, will end the game for the day."
  295.                             PrintLn 
  296.                             PrintLn "@X0BAnd of course, there are some surprise items as well."
  297.                             PrintLn 
  298.                             PrintLn "@X0BThe first person to score 5000 wins the round, and the scores are then reset."
  299.                             PrintLn 
  300.                             Print Space(21)
  301.                             Wait
  302.                             RestScrn
  303.                             Goto LABEL006
  304.                         Endif
  305.                         If ((STRING006 < 1) || (STRING006 > 32)) Then
  306.                             If (BOOLEAN006) Gosub LABEL016
  307.                             Goto LABEL006
  308.                         Endif
  309.                         If (TBOOLEAN008(STRING006) == 1) Then
  310.                             If (BOOLEAN006) Gosub LABEL016
  311.                             AnsiPos 26, 22
  312.                             Print "@X0CYou already used that number."
  313.                             Delay 40
  314.                             AnsiPos 26, 22
  315.                             ClrEol
  316.                             Goto LABEL006
  317.                         Endif
  318.                         AnsiPos TSTRING012(STRING006, 1), TSTRING012(STRING006, 2)
  319.                         Print "@X0E■■■■■■"
  320.                         TBOOLEAN008(STRING006) = 1
  321.                         If (Random(10) == 0) Then
  322.                             BOOLEAN007 = 1
  323.                             INTEGER007 = INTEGER007 - 1
  324.                             AnsiPos TSTRING012(STRING006, 1), TSTRING012(STRING006, 2)
  325.                             Print "@X0C LOSE "
  326.                             If (BOOLEAN006) Gosub LABEL016
  327.                             AnsiPos 29, 22
  328.                             Print "Sorry, you lost a turn."
  329.                             Delay 40
  330.                         ElseIf ((Random(50) == 0) && (INTEGER006 > 100)) Then
  331.                             INTEGER007 = 0
  332.                             AnsiPos TSTRING012(STRING006, 1), TSTRING012(STRING006, 2)
  333.                             Print "@X0C END! "
  334.                             If (BOOLEAN006) Gosub LABEL016
  335.                             AnsiPos 29, 22
  336.                             Print "Sorry, the game is over."
  337.                             Delay 40
  338.                         Else
  339.                             :LABEL007
  340.                             AnsiPos TSTRING012(STRING006, 1), TSTRING012(STRING006, 2)
  341.                             Print "@X0E      "
  342.                             Backup 4
  343.                             INTEGER005 = Random(99) + 1
  344.                             If (INTEGER005 % 10 <> 0) Then
  345.                                 AnsiPos TSTRING012(STRING006, 1), TSTRING012(STRING006, 2)
  346.                                 Print "@X0E■■■■■■"
  347.                                 Goto LABEL007
  348.                             Endif
  349.                             If ((Random(5) == 0) && (INTEGER006 > 100)) Then
  350.                                 INTEGER005 = INTEGER005 * -1
  351.                                 Backup 1
  352.                                 Print "@X0C"
  353.                             Endif
  354.                             Print INTEGER005
  355.                             INTEGER006 = INTEGER006 + INTEGER005
  356.                         Endif
  357.                     Endif
  358.                     :LABEL008
  359.                     AnsiPos 14, 2
  360.                     Print "@X0F", INTEGER006, " "
  361.                     AnsiPos 72, 2
  362.                     Print INTEGER007, " "
  363.                     If (MinLeft() < 6) Then
  364.                         If (MinLeft() < 4) Then
  365.                             Cls
  366.                             BOOLEAN005 = 1
  367.                             Goto LABEL010
  368.                         Endif
  369.                         AnsiPos 31, 2
  370.                         Print "@X0CCaution " + String(MinLeft()) + " min left!"
  371.                     Endif
  372.                     If (INTEGER007 == 0) Goto LABEL009
  373.                     If (INTEGER006 < 5000) Goto LABEL006
  374.                     Delay 10
  375.                     PrintLn "@CLS@@X0C"
  376.                     If (BOOLEAN006) Gosub LABEL016
  377.                     STRING006 = "Congratulations " + STRING005 + ", you've won the round!"
  378.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  379.                     If (BOOLEAN006) Gosub LABEL016
  380.                     INTEGER007 = 0
  381.                     Delay 30
  382.                     For INTEGER001 = 1 To 50
  383.                         TSTRING010(INTEGER001, 1) = "NotUsed"
  384.                         TSTRING010(INTEGER001, 2) = "01/01/90"
  385.                         TSTRING010(INTEGER001, 3) = 0
  386.                     Next
  387.                     TSTRING010(51, 1) = U_Name()
  388.                     TSTRING010(51, 2) = Date()
  389.                     TSTRING010(51, 3) = 0
  390.                     Goto LABEL011
  391.                     :LABEL009
  392.                     Delay 40
  393.                     PrintLn "@CLS@@X0F"
  394.                     STRING006 = "Sorry " + STRING005 + ", but you are out of turns for today."
  395.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  396.                     :LABEL010
  397.                     PrintLn "@X0A"
  398.                     If (INTEGER006 >= INTEGER004) Then
  399.                         STRING006 = "You won " + String(INTEGER006 - INTEGER004) + " today!"
  400.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  401.                     Else
  402.                         STRING006 = "You lost " + String(INTEGER004 - INTEGER006) + " today."
  403.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  404.                     Endif
  405.                     PrintLn "@X0E"
  406.                     STRING006 = "Please call back tomorrow and play again."
  407.                     PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  408.                     If (INTEGER006 > INTEGER008) Then
  409.                         PrintLn "@X0F"
  410.                         STRING006 = "Congratulations, you now have the high score!"
  411.                         If (BOOLEAN006) Gosub LABEL016
  412.                         PrintLn Space((80 - Len(STRING006)) / 2) + STRING006
  413.                     Endif
  414.                     PrintLn 
  415.                     Print Space(26)
  416.                     Wait
  417.                     :LABEL011
  418.                     Gosub LABEL014
  419.                     PrintLn "@CLS@@X0F"
  420.                     Print "Exiting."
  421.                     FCreate 1, PPEPath() + "POG.DAT", 1, 3
  422.                     For INTEGER001 = 1 To 51
  423.                         If ((INTEGER006 < 5000) && (INTEGER002 == INTEGER001)) Then
  424.                             TSTRING010(INTEGER002, 2) = Date()
  425.                             TSTRING010(INTEGER002, 3) = INTEGER006
  426.                         Endif
  427.                         FPutLn 1, TSTRING010(INTEGER001, 1)
  428.                         FPutLn 1, TSTRING010(INTEGER001, 2)
  429.                         FPutLn 1, TSTRING010(INTEGER001, 3)
  430.                     Next
  431.                     FClose 1
  432.                     Print "."
  433.                     If (Exist(PPEPath() + "POG.BAT")) Then
  434.                         FCreate 1, PPEPath() + "POG.BLT", 1, 3
  435.                         FPutLn 1, ""
  436.                         FPut 1, "@X0F "
  437.                         STRING006 = "Pot Of Gold High Scores To Date"
  438.                         FPutLn 1, Space((76 - Len(STRING006)) / 2) + STRING006
  439.                         STRING006 = "═══════════════════════════════"
  440.                         FPut 1, "@X0C"
  441.                         FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  442.                         If ((TSTRING010(51, 1) <> "NotUsed") && (TSTRING010(51, 1) <> "")) Then
  443.                             FPut 1, "@X0D"
  444.                             STRING006 = "Winner Last Round Was " + TSTRING010(51, 1) + " On " + TSTRING010(51, 2)
  445.                             FPutLn 1, Space((78 - Len(STRING006)) / 2) + STRING006
  446.                         Endif
  447.                         FPutLn 1, "@X0E"
  448.                         FPutLn 1, Space(18), "   Name                    Date     Score"
  449.                         FPutLn 1, "@X0A"
  450.                         For INTEGER001 = 1 To 50
  451.                             If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  452.                                 If (INTEGER001 == 1) Then
  453.                                     FPut 1, "@X0F"
  454.                                     Goto LABEL012
  455.                                 Endif
  456.                                 FPut 1, "@X0A"
  457.                                 :LABEL012
  458.                                 FPut 1, Space(18), TSTRING011(INTEGER001, 1), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  459.                                 FPutLn 1, Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  460.                             Endif
  461.                         Next
  462.                         FClose 1
  463.                         Print "."
  464.                         Shell 1, INTEGER001, PPEPath() + "POG.BAT", ""
  465.                     Endif
  466.                 Endif
  467.             Endif
  468.             :LABEL013
  469.             If (BOOLEAN003) Then
  470.                 PrintLn "Returning you to " + STRING003 + ".."
  471.             Else
  472.                 Delay 20
  473.                 PrintLn "Returning you to PCBoard.."
  474.                 Delay 20
  475.             Endif
  476.         Endif
  477.     Endif
  478.     Log "Exited POG.PPE at " + Left(Time(), 5), 0
  479.     End
  480.     :LABEL014
  481.     If ((INTEGER007 <> 0) && !BOOLEAN005) SaveScrn
  482.     If (INTEGER006 < 5000) Then
  483.         TSTRING010(INTEGER002, 2) = Date()
  484.         TSTRING010(INTEGER002, 3) = INTEGER006
  485.     Endif
  486.     Print "@CLS@@X0D"
  487.     For INTEGER001 = 1 To 50
  488.         TSTRING011(INTEGER001, 1) = TSTRING010(INTEGER001, 1)
  489.         TSTRING011(INTEGER001, 2) = TSTRING010(INTEGER001, 2)
  490.         TSTRING011(INTEGER001, 3) = TSTRING010(INTEGER001, 3)
  491.     Next
  492.     AnsiPos 30, 12
  493.     Print "Sorting."
  494.     :LABEL015
  495.     BOOLEAN004 = 1
  496.     For INTEGER001 = 1 To 49
  497.         INTEGER005 = INTEGER001 + 1
  498.         If ((TSTRING011(INTEGER005, 1) <> "NotUsed") && (S2I(TSTRING011(INTEGER005, 3), 10) > S2I(TSTRING011(INTEGER001, 3), 10))) Then
  499.             BOOLEAN004 = 0
  500.             STRING007 = TSTRING011(INTEGER001, 1)
  501.             STRING008 = TSTRING011(INTEGER001, 2)
  502.             STRING009 = TSTRING011(INTEGER001, 3)
  503.             TSTRING011(INTEGER001, 1) = TSTRING011(INTEGER005, 1)
  504.             TSTRING011(INTEGER001, 2) = TSTRING011(INTEGER005, 2)
  505.             TSTRING011(INTEGER001, 3) = TSTRING011(INTEGER005, 3)
  506.             TSTRING011(INTEGER005, 1) = STRING007
  507.             TSTRING011(INTEGER005, 2) = STRING008
  508.             TSTRING011(INTEGER005, 3) = STRING009
  509.         Endif
  510.     Next
  511.     Print "."
  512.     If (!BOOLEAN004) Goto LABEL015
  513.     Print "@CLS@ @X0F"
  514.     STRING006 = "Pot Of Gold High Scores To Date"
  515.     PrintLn Space((76 - Len(STRING006)) / 2) + STRING006
  516.     STRING006 = "═══════════════════════════════"
  517.     Print "@X0C"
  518.     PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  519.     If ((TSTRING010(51, 1) <> "NotUsed") && (TSTRING010(51, 1) <> "")) Then
  520.         Print "@X0D"
  521.         STRING006 = "Winner Last Round Was " + TSTRING010(51, 1) + " On " + TSTRING010(51, 2)
  522.         PrintLn Space((78 - Len(STRING006)) / 2) + STRING006
  523.         INTEGER005 = 13
  524.     Else
  525.         INTEGER005 = 15
  526.     Endif
  527.     PrintLn "@X0E"
  528.     PrintLn Space(18), "   Name                    Date     Score"
  529.     PrintLn "@X0A"
  530.     For INTEGER001 = 1 To INTEGER005
  531.         If (TSTRING011(INTEGER001, 1) <> "NotUsed") Then
  532.             Print "@X0A"
  533.             If (TSTRING011(INTEGER001, 1) == U_Name()) Print "@X0B"
  534.             If (INTEGER001 == 1) Print "@X0F"
  535.             Print Space(18), TSTRING011(INTEGER001, 1), "@POS:44@", TSTRING011(INTEGER001, 2), "   "
  536.             PrintLn Right(Space(3) + TSTRING011(INTEGER001, 3), 4)
  537.         Endif
  538.     Next
  539.     PrintLn 
  540.     Print Space(25)
  541.     Wait
  542.     If ((INTEGER007 <> 0) && !BOOLEAN005) RestScrn
  543.     Return
  544.     :LABEL016
  545.     If (OnLocal()) Goto LABEL017
  546.     Print "@BEEP@"
  547.     Goto LABEL018
  548.     :LABEL017
  549.     Sound 1000
  550.     Delay 1
  551.     Sound 0
  552.     :LABEL018
  553.     Return
  554.     :LABEL019
  555.     BOOLEAN007 = 0
  556.     Cls
  557.     PrintLn "                                 @X0E Pot Of Gold"
  558.     PrintLn "@X0F     Score =                                                   Turns =     @X0B"
  559.     PrintLn "   ╔════════╤════════╤════════╤════════╤════════╤════════╤════════╤════════╗"
  560.     PrintLn "   ║ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B║"
  561.     PrintLn "   ║        │        │        │        │        │        │        │        ║"
  562.     PrintLn "   ║@X0F    1   @X0B│@X0F    2   @X0B│@X0F    3   @X0B│@X0F    4   @X0B│@X0F    5   @X0B│@X0F    6   @X0B│@X0F    7   @X0B│@X0F    8   @X0B║"
  563.     PrintLn "   ╟────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────╢"
  564.     PrintLn "   ║ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B║"
  565.     PrintLn "   ║        │        │        │        │        │        │        │        ║"
  566.     PrintLn "   ║@X0F    9   @X0B│@X0F   10   @X0B│@X0F   11   @X0B│@X0F   12   @X0B│@X0F   13   @X0B│@X0F   14   @X0B│@X0F   15   @X0B│@X0F   16   @X0B║"
  567.     PrintLn "   ╟────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────╢"
  568.     PrintLn "   ║ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B║"
  569.     PrintLn "   ║        │        │        │        │        │        │        │        ║"
  570.     PrintLn "   ║@X0F   17   @X0B│@X0F   18   @X0B│@X0F   19   @X0B│@X0F   20   @X0B│@X0F   21   @X0B│@X0F   22   @X0B│@X0F   23   @X0B│@X0F   24   @X0B║"
  571.     PrintLn "   ╟────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────╢"
  572.     PrintLn "   ║ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B│ @X0A■■■■■■ @X0B║"
  573.     PrintLn "   ║        │        │        │        │        │        │        │        ║"
  574.     PrintLn "   ║@X0F   25   @X0B│@X0F   26   @X0B│@X0F   27   @X0B│@X0F   28   @X0B│@X0F   29   @X0B│@X0F   30   @X0B│@X0F   31   @X0B│@X0F   32   @X0B║"
  575.     PrintLn "   ╚════════╧════════╧════════╧════════╧════════╧════════╧════════╧════════╝"
  576.     Return
  577.     :LABEL020
  578.     TSTRING012(1, 1) = 6
  579.     TSTRING012(1, 2) = 4
  580.     TSTRING012(2, 1) = 15
  581.     TSTRING012(2, 2) = 4
  582.     TSTRING012(3, 1) = 24
  583.     TSTRING012(3, 2) = 4
  584.     TSTRING012(4, 1) = 33
  585.     TSTRING012(4, 2) = 4
  586.     TSTRING012(5, 1) = 42
  587.     TSTRING012(5, 2) = 4
  588.     TSTRING012(6, 1) = 51
  589.     TSTRING012(6, 2) = 4
  590.     TSTRING012(7, 1) = 60
  591.     TSTRING012(7, 2) = 4
  592.     TSTRING012(8, 1) = 69
  593.     TSTRING012(8, 2) = 4
  594.     TSTRING012(9, 1) = 6
  595.     TSTRING012(9, 2) = 8
  596.     TSTRING012(10, 1) = 15
  597.     TSTRING012(10, 2) = 8
  598.     TSTRING012(11, 1) = 24
  599.     TSTRING012(11, 2) = 8
  600.     TSTRING012(12, 1) = 33
  601.     TSTRING012(12, 2) = 8
  602.     TSTRING012(13, 1) = 42
  603.     TSTRING012(13, 2) = 8
  604.     TSTRING012(14, 1) = 51
  605.     TSTRING012(14, 2) = 8
  606.     TSTRING012(15, 1) = 60
  607.     TSTRING012(15, 2) = 8
  608.     TSTRING012(16, 1) = 69
  609.     TSTRING012(16, 2) = 8
  610.     TSTRING012(17, 1) = 6
  611.     TSTRING012(17, 2) = 12
  612.     TSTRING012(18, 1) = 15
  613.     TSTRING012(18, 2) = 12
  614.     TSTRING012(19, 1) = 24
  615.     TSTRING012(19, 2) = 12
  616.     TSTRING012(20, 1) = 33
  617.     TSTRING012(20, 2) = 12
  618.     TSTRING012(21, 1) = 42
  619.     TSTRING012(21, 2) = 12
  620.     TSTRING012(22, 1) = 51
  621.     TSTRING012(22, 2) = 12
  622.     TSTRING012(23, 1) = 60
  623.     TSTRING012(23, 2) = 12
  624.     TSTRING012(24, 1) = 69
  625.     TSTRING012(24, 2) = 12
  626.     TSTRING012(25, 1) = 6
  627.     TSTRING012(25, 2) = 16
  628.     TSTRING012(26, 1) = 15
  629.     TSTRING012(26, 2) = 16
  630.     TSTRING012(27, 1) = 24
  631.     TSTRING012(27, 2) = 16
  632.     TSTRING012(28, 1) = 33
  633.     TSTRING012(28, 2) = 16
  634.     TSTRING012(29, 1) = 42
  635.     TSTRING012(29, 2) = 16
  636.     TSTRING012(30, 1) = 51
  637.     TSTRING012(30, 2) = 16
  638.     TSTRING012(31, 1) = 60
  639.     TSTRING012(31, 2) = 16
  640.     TSTRING012(32, 1) = 69
  641.     TSTRING012(32, 2) = 16
  642.     Return
  643.     :LABEL021
  644.     For INTEGER001 = 1 To 32
  645.         TBOOLEAN008(INTEGER001) = 0
  646.     Next
  647.     Return
  648.  
  649. ;------------------------------------------------------------------------------
  650. ;
  651. ; Usage report (before postprocessing)
  652. ;
  653. ; ■ Statements used :
  654. ;
  655. ;    1       End
  656. ;    6       Cls
  657. ;    1       ClrEol
  658. ;    6       Wait
  659. ;    100     Goto 
  660. ;    193     Let 
  661. ;    38      Print 
  662. ;    105     PrintLn 
  663. ;    73      If 
  664. ;    4       FCreate 
  665. ;    1       FOpen 
  666. ;    5       FClose 
  667. ;    6       FGet 
  668. ;    6       FPut 
  669. ;    17      FPutLn 
  670. ;    1       GetUser
  671. ;    4       Log 
  672. ;    1       InputStr 
  673. ;    1       InputYN 
  674. ;    17      Gosub 
  675. ;    5       Return
  676. ;    16      Delay 
  677. ;    1       GetToken 
  678. ;    1       Shell 
  679. ;    16      AnsiPos 
  680. ;    2       Backup 
  681. ;    3       SaveScrn
  682. ;    3       RestScrn
  683. ;    2       Sound 
  684. ;
  685. ;
  686. ; ■ Functions used :
  687. ;
  688. ;    1       -
  689. ;    1       *
  690. ;    24      /
  691. ;    1       %
  692. ;    85      +
  693. ;    29      -
  694. ;    28      ==
  695. ;    12      <>
  696. ;    18      <
  697. ;    11      <=
  698. ;    7       >
  699. ;    23      >=
  700. ;    58      !
  701. ;    32      &&
  702. ;    18      ||
  703. ;    25      Len(
  704. ;    1       Lower()
  705. ;    7       Left()
  706. ;    3       Right()
  707. ;    43      Space()
  708. ;    1       InStr()
  709. ;    5       Random()
  710. ;    5       Date()
  711. ;    3       Time()
  712. ;    6       U_Name()
  713. ;    4       String()
  714. ;    1       PCBDat()
  715. ;    8       PPEPath()
  716. ;    1       ReadLine()
  717. ;    1       OnLocal()
  718. ;    4       MinLeft()
  719. ;    2       Exist()
  720. ;    2       S2I()
  721. ;    1       AnsiOn()
  722. ;
  723. ;------------------------------------------------------------------------------
  724. ;
  725. ; Analysis flags : Sd
  726. ;
  727. ; S - Shell to DOS ■ 5
  728. ;     This may be normal if the PPE need to execute an external command,
  729. ;     but may be actually anything... nasty (formating HD, rebooting,...)
  730. ;     or usefull (sorting, maintenance,...). Check!
  731. ;     ■ Search for : SHELL
  732. ;
  733. ; d - Access PCBOARD.DAT ■ 2
  734. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  735. ;     for many PPE so they can find various informations on the system
  736. ;     (system paths, max number of lines in messages, ...) but it may also
  737. ;     be a way to gather vital informations.
  738. ;     ■ Search for : PCBDAT()
  739. ;
  740. ;------------------------------------------------------------------------------
  741. ;
  742. ; Postprocessing report
  743. ;
  744. ;    11      For/Next
  745. ;    0       While/EndWhile
  746. ;    39      If/Then or If/Then/Else
  747. ;    0       Select Case
  748. ;
  749. ;------------------------------------------------------------------------------
  750. ;                 AEGiS Corp - Break the routines, code against the machines!
  751. ;------------------------------------------------------------------------------
  752.